package com.example.demo.hutool.redis;

import cn.hutool.db.nosql.redis.RedisDS;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import com.example.demo.hutool.redis.ssl.SocketFactory;
import org.springframework.util.CollectionUtils;
import redis.clients.jedis.*;

import javax.net.ssl.SSLSocketFactory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class test {
    private static final Log log = LogFactory.get();
    public static void main(String[] args) throws Exception {



        Jedis jedis =RedisTypeTest.jedis;
        jedis.select(0);


        List<String> strings = jedis.configGet("notify-keyspace-events");
        String bgrewriteaof = jedis.bgrewriteaof();
        System.out.println(jedis.dbSize());

        int startList = -1000;
        int endList = -1;
        List<String> lrange = jedis.lrange("audio", startList, endList);
        System.out.println();
//        jedis.configSet("notify-keyspace-events","AKE");

//        //0 表示列表的第一个元素， 1 表示列表的第二个元素，以此类推。
//        // 你也可以使用负数下标，以 -1 表示列表的最后一个元素， -2 表示列表的倒数第二个元素，以此类推。
//        List<String> sxmList = jedis.lrange("sxmlist", -1011, -12);
//        System.out.println();
        for (int i = 0; i < 3000; i++) {
            jedis.lpush("0Pipelinelist", "左"+i); //左添加
        }


////        jedis.sc
//        jedis.set("sxm","ww");
//        jedis.pexpire("sxm",9000);
//        jedis.set("shorderid_12", "a12");
//        jedis.expire("shorderid_12", 5);
//        jedis.rpush("sxmlist", "6");//右添加
////        jedis.lpush("sxmlist", "zs", "ls", "ww"); //左添加
//        System.out.println(jedis.keys("h?llo")+"----");
//        System.out.println(jedis.ttl("sxm"));
//        System.out.println(jedis.pttl("sxm"));
//        System.out.println(jedis.pttl("wsx"));
//        Object evalsha = jedis.eval("local key=KEYS[1]\n" +
//                "local arg=ARGV[1]\n" +
//                "\n" +
//                "local value=tonumber(arg)\n" +
//                "local currentValue=tonumber(redis.call('get', key))\n" +
//                "if currentValue==nil then\n" +
//                "    currentValue=0\n" +
//                "end\n" +
//                "local new_value=(currentValue+value)\n" +
//                "\n" +
//                "redis.call('set',key,new_value)\n", getKeys(), getArgs());
//        Object info = jedis.eval("return redis.call('info')");
//
//
//        try  {
//            //模糊匹配的KEY
//            String VEHICLE_MATCH_KEY = "h*llo";
//            //结束点标识
//            String SCAN_CURSOR_INDEX = "0";
//            //一次扫描多少条数据
//            Integer SCAN_CURSOR_COUNT = 10000;
//            //创建扫描参数实体类
//            ScanParams scanParams = new ScanParams();
//            //设置模糊匹配的key
//            scanParams.match(VEHICLE_MATCH_KEY);
//            //设置分片扫描的数量
//            scanParams.count(SCAN_CURSOR_COUNT);
//            List<String> delKeys = new ArrayList<>();
//            //游标索引开始和结束的索引值
//            String cursor = SCAN_CURSOR_INDEX;
//            //游标循环移动操作
//            do {
//                //开始扫描
//                ScanResult<String> sr = jedis.scan(cursor, scanParams);
//                //获取扫描返回结果
//                List<String> keyResultList = sr.getResult();
//                if (!CollectionUtils.isEmpty(keyResultList)) {
//                    delKeys.addAll(keyResultList);
//                }
//                //更新游标位置
//                cursor = sr.getCursor();
//                System.out.println("*****");
//                //cursor = sr.getStringCursor();
//            } while (!SCAN_CURSOR_INDEX.equals(cursor));
//            System.out.println(delKeys);
//        } catch (Exception e) {
//            log.info("批量信息失败", e);
//        }
//


   //     jedis.close();
     //   System.out.println(info);

    }

    public static List<String> getKeys() {
        return Arrays.asList("wsx");
    }

    public static List<String> getArgs() {
        return Arrays.asList("90");
    }

}
